import { WX_AUTH_URL, PROJECT_URL } from '@/libs/config'
/* 验证微信环境 */
const isWechat = () => {
  let ua = window.navigator.userAgent.toLowerCase()
  return /MicroMessenger/i.test(ua)
}

/* 获取#前面的参数 */
const getQuery = name => {
  var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i')
  var r = window.location.search.substr(1).match(reg)
  if (r !== null) {
    return unescape(r[2])
  }
  return null
}

// 队列执行
function queue (arr) {
  var sequence = Promise.resolve()
  arr.forEach(function (item) {
    sequence = sequence.then(item)
  })
  return sequence
}

// 微信授权跳转
const wxAuth = (beforeUrl) => {
  window.location.href = `${WX_AUTH_URL}?forwardUrl=${encodeURIComponent(beforeUrl)}`
}

// 时间戳转化

function timestampFormat (timestamp) {
  function zeroize (num) {
    return (String(num).length == 1 ? '0' : '') + num
  }

  var curTimestamp = parseInt(new Date().getTime() / 1000) // 当前时间戳
  var timestampDiff = curTimestamp - timestamp // 参数时间戳与当前时间戳相差秒数

  var curDate = new Date(curTimestamp * 1000) // 当前时间日期对象
  var tmDate = new Date(timestamp * 1000) // 参数时间戳转换成的日期对象

  var Y = tmDate.getFullYear(), m = tmDate.getMonth() + 1, d = tmDate.getDate()
  var H = tmDate.getHours(), i = tmDate.getMinutes(), s = tmDate.getSeconds()

  if (timestampDiff < 60) { // 一分钟以内
    return '刚刚'
  } else if (timestampDiff < 3600) { // 一小时前之内
    return Math.floor(timestampDiff / 60) + '分钟前'
  } else if (curDate.getFullYear() == Y && curDate.getMonth() + 1 == m && curDate.getDate() == d) {
    return '今天' + zeroize(H) + ':' + zeroize(i)
  } else {
    var newDate = new Date((curTimestamp - 86400) * 1000) // 参数中的时间戳加一天转换成的日期对象
    if (newDate.getFullYear() == Y && newDate.getMonth() + 1 == m && newDate.getDate() == d) {
      return '昨天' + zeroize(H) + ':' + zeroize(i)
    } else if (curDate.getFullYear() == Y) {
      return zeroize(m) + '月' + zeroize(d) + '日 ' + zeroize(H) + ':' + zeroize(i)
    } else {
      return Y + '年' + zeroize(m) + '月' + zeroize(d) + '日 ' + zeroize(H) + ':' + zeroize(i)
    }
  }
}
// 时间点比较
const compareTime = function (t1, t2) {
  var date = new Date()
  var a = t1.split(':')
  var b = t2.split(':')
  return date.setHours(a[0], a[1]) < date.setHours(b[0], b[1])
}

const getWechatLink = (url) => {
  return window.location.origin + '//ydj/redirect.html?shareRedirect=' + encodeURIComponent(PROJECT_URL + url)
  // return PROJECT_URL + url
}
export {
  isWechat,
  getQuery,
  wxAuth,
  queue,
  timestampFormat,
  compareTime,
  getWechatLink
}
